import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 获取命令行参数
const args = process.argv.slice(2);
const updateType = args[0] || "patch"; // 默认更新第三位

// 更新package.json版本号
const packagePath = path.resolve(__dirname, "../package.json");
const packageJson = JSON.parse(fs.readFileSync(packagePath, "utf8"));

const version = packageJson.version.split(".").map((v) => parseInt(v));

// 根据更新类型决定更新哪个位置
switch (updateType) {
  case "major":
    version[0] += 1;
    version[1] = 0;
    version[2] = 0;
    console.log("🔄 执行 major 版本更新 (第一位版本号 +1)");
    break;
  case "minor":
    version[1] += 1;
    version[2] = 0;
    console.log("🔄 执行 minor 版本更新 (第二位版本号 +1)");
    break;
  case "patch":
  default:
    version[2] += 1;
    console.log("🔄 执行 patch 版本更新 (第三位版本号 +1)");
    break;
}

const newVersion = version.join(".");
packageJson.version = newVersion;

fs.writeFileSync(packagePath, JSON.stringify(packageJson, null, 2));
console.log("✅ package.json 版本已更新到:", newVersion);

// 更新.env文件中的版本号
const envPath = path.resolve(__dirname, "../.env");
let envContent = fs.readFileSync(envPath, "utf8");

// 使用正则表达式替换VITE_APP_VERSION的值
const versionRegex = /VITE_APP_VERSION\s*=\s*.*/;
if (versionRegex.test(envContent)) {
  envContent = envContent.replace(
    versionRegex,
    `VITE_APP_VERSION = ${newVersion}`
  );
  fs.writeFileSync(envPath, envContent);
  console.log("✅ .env 文件版本已同步更新到:", newVersion);
} else {
  console.log("⚠️  在 .env 文件中未找到 VITE_APP_VERSION，请手动添加");
}
